#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>

using namespace std;

int glob = 6;
char buf[] = " a wirte to stdout \n";

int main( int argc, char *argv[] )
{
	int var;
	pid_t pid;

	var = 88;
	if( write( STDOUT_FILENO, buf, sizeof(buf) - 1 ) != sizeof(buf) - 1 ) {
		perror( "write error" );
		exit( -1 );
	}
	printf( "before fork \n" );
	// cout << "before fork" << endl;
	if( (pid = fork()) < 0 ) {
		perror( "fork error" );
		exit( -1 );
	}
	else if( pid == 0 ) {
		glob++;
		var++;
	}
	else
		sleep( 2 );

	printf( "pid=%d, glob=%d, var=%d\n", getpid(), glob, var );
	exit( 0 );
}

// 直接运行与将标准输出重定向到文件所得的结果是不一样的。
// apue 中8.3对这做出了解释
// 但用cout代替printf不行的。
